Technische Hochschule Magdeburg Sektion Technische Kybernetik und Elektrotechnik Abschlussbericht zur Neuerervereinbarung III - 288 - 19/86 EPROM-Simulator Neuererkollektiv: Dipl.-Ing. Bresch Kolln. Engelbrecht Kollege Lange Dr.-Ing. Oberst Kollege v. Angern Magdeburq, den 5.1.1987 1. Hardware-Beschreibung Fuer die Inbetriebnahme von Leiterplatten auf Mikrorechnerbasis sind spezielle Hilfsmittel notwendig. Da Echtzeitsimulatoren und Logikanalysatoren nicht in allen Labors jederzeit verfügbar sind, steht oft die Forderung nach leicht zu fertigenden Rationalisierungsmitteln, die in der Inbetriebnahmephase von Mikrorechnersystemen ein zeitaufwendiges Loeschen und Neuprogrammieren von EPROMs vermeiden. Eine konkrete Anwendung findet der Simulator bei der Inbetriebnahme der Software für eine 10-kanalige Analogausgabeeinheit. Dabei handelt es sich um ein Staatsplanthema für den VEB Numerik Karl-Marx-Stadt. Bei der Inbetriebnahme von neu entwickelter Software für Mikrorechner unter Echtzeitbedingungen ist ein Abspeichern der Programme auf Festwertspeicher wenig sinnvoll. Jeder Programmfehler fuehrt zum Löschen und Neuprogrammieren der Speicher. Diese Arbeitsweise ist wenig effektiv, da EPROMs nicht beliebig oft programmiert werden können und der Zeitaufwand der Programminbetriebnahme unvertretbar hoch ist. Es bietet sich an die EPROMs durch RAMs zu ersetzen und in ihnen das entwickelte Programm abzuspeichern. Der Anwenderrechner greift dann nicht auf seinen eigentlichen Programmspeicher, sondern auf diesen RAM zu. Das Laden dieses RAM-Speichers erfolgt üblicherweise von einem vorhandenen Entwicklungssystem (z.B. MRES, MC80 oder BC). Das Ziel der Neuerer bestand darin, eine RAM-Speicherbaugruppe zu konzipieren, die unabhängig von einer speziellen Rechner-Hardware als EPROM-Simulator nutzbar ist. Sinnvollerweise wird eine serielle Kopplung zwischen Entwicklungssystem und EPROM- Simulator realisiert. Die IFSS-Schnittstelle scheint für solche Anwendungen besonders prädestiniert zu sein. Bild 1 zeigt das Blockschaltbild des realisierten EPROM-Simulators. Herzstück des Simulators ist ein statischer 8-kByte RAM-Speicher, bestehend aus 16 Schaltkreisen U 214 D20. Dieser RAM stellt praktische ein Dual-Port-RAM dar, da von zwei Seiten auf ihn zugegriffen werden kann. Einerseits kann der Anwenderrechner auf ihn als Programmspeicher zugreifen. Andererseits lässt sich dieser RAM vom Software- Entwicklungssystem über die serielle Schnittstelle laden. Zur Bedienung der seriellen Schnittstelle wird im EPROM-Simulator ein Einchiprechner U 8820 verwendet. Aus dem Entwicklungsrechner werden über die serielle Schnittstelle die Daten in die Register des Einchiprechners übertragen. Durch die Software des U 8820 werden die Daten über seine Ports in geeigneter Weise in den RAM des Simulators geschrieben. Die dazu notwendige Software umfasst 735 Byte und ist in einem 2-kByte EPROM U 2716 C abgespeichert. Der Einchiprechner verfügt über eine automatische Reset-Logik, so dass bei "Rechnerabsturz" selbstständig neu gestartet wird. Mit dem Simulator können zwei EPROMs von je 2 oder 4 kByte oder ein EPROM von 8-kByte simuliert werden. Über die Steckverbinder X1 und X2 wir durch speziell gefertigte Adapterkabel die Verbindung zum Anwenderrechner hergestellt. Im genannten Rechner werden die EPROMs von dne Fassungen gezogen und der Adapterstecker (24-polig fuer 2- und 4-k EPROMs, 28-polig fuer 6-k EPROMs) an Stelle der Festwertspeicher gesteckt. Die elektrische Verbindung wir über flexibles Bandkabel realisiert, wobei jede zweite Leitung Massepotential fuehrt. Mit dem Simulator können nur zwei EPROMs im gleichen Anwendersystem simuliert werden, d.h. der Daten- und Adressbus ist für beide EPROMs der selbe. Das stellt im praktischen Betrieb keine Einschränkung dar. Beim zweiten zu simulierenden EPROM braucht nicht wie beim ersten der gesamte Daten- und Adressbus neu kontaktiert zu werden. Es werden lediglich die Signale /OE und /CS ueber einfache Kabel vom Simulator zum Anwenderrechner geführt. Das Pin für die Betriebsspannung der EPROMs im Anwenderrechner wird nicht kontaktiert, da der Simulator ueber ein eigenes 5V-Netzteil verfügt, mit dem die gesamte Elektronik des Simulators stromversorgt wird. Welche Art von EPROMs simuliert werden sollen (2-, 4- oder 8k), wird am Betriebs- artenschalter vorgewählt. Die Schalterstellung wird vom Programm abgefragt. Im Simulator befinden sich von aussen zugänglich eine 28-polige Schwenkhebel- Fassung. In dies Fassung kann ein EPROM gesteckt weren, in dem sich ein beliebiges zu testendes, bzw. zu korrigierendes Anwenderprogramm befindet. Mit Hilfe der Software ist es möglich den Inhalt dieses EPROMs in den RAM des Simulators zu laden und dort mit entsprechenden Kommandos byteweise zu manipulieren. Diese Möglichkeit ist besonders bei geringfügigen Programmänderungen von besonderem Interesse, weil hier kein Entwicklungsrechner für die Bedienung des Simulators notwendig ist. Ein handelsübliches Terminal ist für die Anwendung ausreichend. In Tabelle 1 ist die Steckverbinderbelegung X1 aufgelistet. 2708 2716 2708 2716 2732 2764 27128 2732 A B B B A B B 1 A12 frei frei frei A10 frei frei (?) 2 A7 frei frei frei A7 frei A13 3 A6 A8 A8 A8 A6 A8 A8 4 A5 A9 A9 A0 A5 A9 A9 5 A4 frei frei A11 A4 A11 A11 6 A3 /OE /OE /OE A3 /OE /OE 7 A2 frei A10 A10 A2 A10 A10 8 A1 /CS /CS /CS A1 /CS /CS 9 A0 D7 D7 D7 A0 D7 D7 10 D0 D6 D6 D6 D0 D6 D6 11 D1 D5 D5 D5 D1 D5 D5 12 D2 D4 D4 D4 D2 D4 D4 13 M D3 D3 D3 M D3 D3 M: Masse 1.Adapterkabel 2.Adapterkabel 24-poliger EPROM-Stecker 28-poliger EPROM-Stecker Tabelle 1: Steckverbinderbelegung X1 (26-polig) Die Adressen A10 und A11 werden ueber Wickelbrücken zum Steckverbinder des EPROM- Simulators geführt, Beim Adapterkabel für 2708, 2716 und 2732 bleibt beim Stecker Reihe A / Pin 1 frei (A12). Der EPROM-Simulator ist keine Ersatz für einen Echtzeitsimulator, stellt jedoch in Verbindung mit einem Logikanalysator eine interessante Gerätekombination zur Software- Inbetriebnahme dar. Insbesondere bei der Testung kleinerer Rechnersysteme mit Anwender- spezifischer Hardware und deren Ein- und Ausgabe-Software hat sich diese Geräte- Kombination bestens bewährt. Eine andere Möglichkeit der Nutzung des EPROM-Simulators besteht darin, für die Dauer der Inbetriebnahme zusätzlich ein kurzes Monitorprogramm in den Anwenderrechner zu laden, um hiermit auch Funktionen wie Haltepunkte, Schrittbetrieb und Registermanipulation realisieren zu koennen. Für diesen Anwendungsfall enthält der EPROM-Simulator eine spezielle Hardware, die es dem Anwenderrechner gestattet, Daten (z.B. Registerinhalte) zum Einchiprechner U 8820 des Simulators und damit weiter zum Entwicklungsrechner oder zum Terminal zu übertragen. 2. Softwarebeschreibung Die Software des EPROM-Simulators ermöglicht dem Anwender die Nutzung einer Reihe von Bedienkommandos. Grundsätzlich kann sich der Simulator in zwei Zuständen befinden: a) Monitor-Modus In dieser Betriebsart hat der eingesetzte U 8820-Einchiprechner Zugriff auf den Simulationsspeicher. Über ihn kann der Nutzer den Simulationsspeicher laden, auslesen und beliebig verändern. Für den Anwenderrechner ist der Speicherzugriff gesperrt, d.h. alle Datenleitungen befinden sich im Tri-State.Ausserdem ist die zusätzlich anschliessbare Reset-Leitung aktiv low, d.h. der Anwenderrechner befindet sich im Reset- Zustand. b) User-Mode Der Simulationsspeicher ist vom Anwenderrechner aus erreichbar, d.h. bei Anliegen einer Adresse sowie der Steuersignale /CS und /OE erscheint am Steckverbinder X1 das zugehörige Datenwort. Die extern verfügbare Reset-Leitung ist inaktiv. Nach Einschalten des EPROM-Simulators befindet sich das Gerät grundsätzlich im Monitor- Mode. Nachdem der Simulationsspeicher durch denn Anwender geladen wurde, erfolgt die Umschaltung in den User-Mode durch das Kommando USER (U). Die Rückehr in den Monitor- Mode erfolgt nach Aufruf eines beliebigen anderen Kommandos. Eine Aufstellung und Beschreibung der Kommandos ist unter 2.2 zu finden. Die Software selbst weist keine Besonderheiten auf. Sie ähnelt vom Aufbau einem einfachen Monitor-Programm mit serieller Schnittstelle. Bei der Entwicklung wurde besonderer Wert auf Übersichtlichkeit gelegt. Deshalb sind viele Funktionen über Unterprogramme realisiert, Es existiert im gesamten System nur eine Interrupt-Quelle. Dies ist der Zeitgeber, der einen 15ms-Takt zum Aktivieren der automatischen Reset-Logik liefert. Eine Besonderheit der Schaltung besteht darin, dass der Simulationsspeicher nicht als externer RAM im üblichen Sinne geschaltet ist. Deshalb kann der Zugriff nicht mit den entsprechenden U 8820-Befehlen erfolgen, sondern es sind besondere Unterprogramme nötig. 2.1 PAP RESET | | |-> Initialisierung (Ports, Stack, Interrupt-Quelle) | | |<--------------------------------------------------- | | |-> Ausgabe des Promt-Zeichens | | | |->| | | |-> Abfrage der seriellen Schnittstelle | |<-| | | | |-> Kommando-Decodierung | | | |--------------- | | | | | | |-> Monitor-Mode ---> DUMP --------->| | | | | | | | | | | |----> Monitor-Mode ---> SUBSTITUDE --->| | | | | | | | | |-------> Monitor-Mode ---> FILL --------->| | | | | | | |----------> Monitor-Mode ---> MOVE --------->| | | | | |-------------> Monitor-Mode ---> EPROM -------->| | | |----------------> User-Mode ---------------------->| ------------- ----------------- | allgemein | | 15ms-Clock | | nutzbare | | für automat. | | Unterprog.| | Reset-Logik | ------------- ----------------- 2.2 Beschreibung Monitor-Kommandos (mit eingearbeiteten Korrekturen) DISPLAY -> RAM / EPROM -> AnfAdr - EndAdr / CHECKSUM Syntax: D AnfAdr EndAdr Funktion: Es wird der Inhalt des Simulationsspeichers oder des EPROMs von AnfAdr bis EndAdr als HEX-Dump ausgegeben. Beispiel: D 0 80 FILL -> AnfAdr EndAdr Byte Syntax: F Byte Funktion: Füllt den Simulationsspeicher von AnfAdr bis EndAdr mit Byte. Beispiel: F 00 SUBSTITUDE -> Unterfunktion von DISPLAY ? Syntax: S Adr DatAlt0-(DatNeu0), DatAlt1-(DatNeu1) ... Funktion: Beginnend ab Adresse Adr wird jeweils ein Byte des Simulationsspeichers zur Anzeige gebracht. Der Inhalt kann durch Neueingabe überschrieben werden.Die Anzeige des nächsten Bytes wird in jedem Fall durch ein Leerzeichen erreicht. Beispiel: S 1000 3E-DB 27- C3= Der Inhalt der Adresse 1000 war 3E. Er wird mit DB ueberschrieben. Die nachfolgenden Speicherplätze enthalten 27 und C3. MOVE Syntax: M AnfAdr EndAdr ZielAdr Funktion: Der Inhalt des Simulationsspeichers von AnfAdr bis einschließlich EndAdr wird auf den Bereich ab ZielAdr kopiert. Beispiel: M 0 3FF 1000 USER Syntax: U Funktion: Schaltet den Simulator in den User-Mode um, d.h. über den Steckverbinder X1 ist der Zugriff zum Simulationsspeicher freigegeben. Die RESET-Leitung für das Anwendersystem ist inaktiv. Alle anderen Monitor-Kommandos bewirken ein Verlasen des User-Mode. EPROM -> BLANKTEST READ WRITE -> Upp: 25V, 21V, 12,5V OVERWRITE COMPARE Syntax: E Adr Funktion: Ein EPROM, das auf die externe Schwenkhebelfassunggesteckt wurde, wird ab Adresse AnfAdr bis EndAdr in den Simulationsspeicher geladen (trifft nur auf READ zu!) Beispiel: E 0 1000 KAPACITY (ist gestrichen) 2,3. Anwendungsbeispiel Problem: In einem K1520-Rechnersystem soll der Inhalt eines EPROMs vom Typ U2716C geändert werden. Ab Adresse 1F3 Hex steht eine Tabelle von Daten mit folgendem Inhalt: 1F 1E 02 01. Diese soll wie folgt geaendert werden: 72 71 61 62 Vorgehensweise: zu ändernden EPROM aus der Fassung ziehen EPROM-Simulator anschliessen: Stromversorgung 15V / 0,6A IFSS-Terminal (9600 Baud) Adapterkabel zwischen X1 und der EPROM-Fassung im K1520-Rechner RESET-Kabel zwischen X2 und dem RESET-Kondensator auf der K1520- ZRE-Platine Betriebsartenschalter auf "K2" schalten Stromversorung für EPROM-Simulator einschalten. Auf dem Terminal erscheint das Prompt-Zeichen ">". Der Simulationsspeicher wird geloescht, d.h. auf FF Hex gesetzt durch folgendes Kommando: F FF Um diese Funktion zu überpruefen, wird der Inhalt des Simulationsspeichers zur Anzeige gebracht: D 0 7FF Den gezogenen EPROM auf die Schwenkhebelfassung stecken und seinen Inhalt in den Simultionsspeicher laden: E 0 Kontrolle durch Anzeige der Speicherzellen 1F3 ... 1F6 Hex: D 1F3 1F6 Verändern des Speicherinhaltes: S 1F3 1F-72 1E-77 1E-71 02-61 01-62 zur Kontrolle wieder den Speicherinhalt ausgeben: D 1F3 1F6 Umschalten in den User-Mode und damit Starten des K1520-Rechners: U Anmerkung: bedeutet das Druecken der "carriage-return"-Taste (manchmal auch mit "Enter" oder "Return" bezeichnet. 3. Zusammenfassung Mit dem vorgestellten Simulator steht ein Rationalisierungsmittel für Inbetriebnahmearbeiten an einfachen Mikrorechnersystemen und deren spezifischer Hardware zur Verfügung. Der Simulator stellt keinen Ersatz fuer einen Echtzeitsimulator dar, ist aber in vielen Fällen eine sinnvolle Alternative. Folgende Daten wurden errreicht: Grösse des Simulations-RAMs: 8kByte Zugriffszeit auf die RAMs vom Anwenderrechner: 290ns Speicherkapazität der zu simulierenden EPROMs: 2x 2kByte oder 4x 2kByte 2x 4kByte 1x 8kByte Schnittstelle zum Entwicklungsrechner bzw. Terminal: IFSS vollduplex 9600 Baud Abmaße des Gerätes: 165 x 275 x 45mm Programmumfang: 736 Byte Anfragen an: Dr. Oberst TH "Otto von Guericke" Sektion IK u. ET PSF 124 3010 Magdeburg Anhang ------ Schaltkreisliste: IC1 MB 104 IC2 MB 104 IC3 B 555 D IC4 U 2716 C IC5 U 8820 IC6 DS 8286 D IC7 DL 175 D IC8 DL 030 D IC9 DL 030 D IC10 DL 032 D IC11 DL 374 D IC12 DL 374 D IC13 DS 8286 D IC14 28-pol. Schwenkhebelfassung IC15 DS 8286 D IC16 DS 8286 D IC17 DS 8205 D IC18,,,33 U 214 D20 IC34 DL 000 D IC35 DL 000 D IC36 B 260 D IC37 DL 008 D